In the conventional third generation partnership project (3GPP) wireless communication systems, the downlink data channel, (i.e., high speed downlink shared channel (HS-DSCH)), may carry different amounts of data using different spreading codes and different modulation and coding schemes (MCSs). The amount of data that can be delivered to a user equipment (UE) over the HS-DSCH depends in part on the downlink channel quality. The UE reports the downlink channel quality to a Node-B using a channel quality indicator (CQI). The Node-B schedules the downlink transmissions based on the CQI reported by the UE.
For generation of the CQI, the UE performs channel quality measurements. The channel quality measurements are converted into a CQI value. Conventionally, a CQI value between 1 and 31 is generated using a lookup table. This CQI value is then encoded into CQI bits that are sent over the uplink channel by the UE.
Multiple-input multiple-output (MIMO) is a scheme that both the UE and the Node-B use more than one antenna in transmission and reception. When MIMO is implemented, multiple data streams may be transmitted between the UE and the Node-B and the UE may need to report multiple CQI values to the Node-B. In addition to the CQI, the UE also sends precoding control information (PCI) to instruct the Node-B as to preferences for downlink preceding.
When in a non-MIMO mode, the UE sends a five (5) bit CQI to the Node-B. The CQI bits are encoded using a (20, 5) code. When in a MIMO mode, the UE may send two types of information to the Node-B. Type-A information is for support of two streams and type-B information is for support of a single stream. Type-A information currently requires ten (10) information bits: two (2) for PCI and eight (8) for CQI values, (e.g., four (4) CQI bits for each stream). Type-B information requires seven (7) information bits: five (5) for CQI and two (2) for PCI. Different bit combinations may be used, but generally type-A information requires more bits than type-B information. Type A and B information are interspersed in uplink transmission as instructed by the network.
The CQI bits in a non-MIMO mode, and type A and type B information bits are block coded using (20, 5), (20, 10), and (20, 7) codes, respectively, to a total 20 coded bits using a generator matrix including a plurality of basis vectors. A linear (20, 10) code with a minimum distance of 6 is currently used for the type A information. The basis sequences for encoding type A information is shown in Table 1. The basis sequences for the type-B code are a subset of the basis sequences for the type-A code. For type B information, a linear combination of the first seven (7) basis sequences of the (20, 10) code is used for a (20, 7) code which also results in a minimum distance of 6 that is not the lowest that can be found for a (20, 7) code.
TABLE 1iMi, 0Mi, 1Mi, 2Mi, 3Mi, 4Mi, 5Mi, 6Mi, 7Mi, 8Mi, 90[1][0][0][0][0][0][0][0][0][0]1[0][1][0][0][0][0][0][0][0][0]2[0][0][1][0][0][0][0][0][0][0]3[0][0][0][1][0][0][0][0][0][0]4[0][0][0][0][1][0][0][0][0][0]5[0][0][0][0][0][1][0][0][0][0]6[0][0][0][0][0][0][1][0][0][0]7[0][0][0][0][0][0][0][1][0][0]8[0][0][0][0][0][0][0][0][1][0]9[0][0][0][0][0][0][0][0][0][1]10[1][0][0][0][1][0][1][1][1][1]11[1][1][0][0][0][1][0][1][1][1]12[0][1][1][0][0][0][1][0][1][1]13[1][0][1][1][0][0][0][1][0][1]14[1][1][0][1][1][0][0][0][1][0]15[1][1][1][0][1][1][0][0][0][1]16[1][1][1][1][0][1][1][0][0][0]17[0][1][1][1][1][0][1][1][0][0]18[1][0][1][1][1][1][0][1][1][0]19[0][1][0][1][1][1][1][0][1][1]
Since the CQI and PCI bits are transmitted to the Node-B without a cyclic redundancy check (CRC), the transmitted CQI bits may be incorrectly received. Consequently, incorrect CQI bits may be used for the downlink scheduling by the Node-B, which results in system capacity degradation. Unlike errors in other decoding, the size of the error matters in CQI decoding. The CQI value ranging from 1 to 31 is mapped to CQI values, an error in a most significant bit (MSB) would generate a bigger error than an error in a non-MSB. Conventional codes are designed to minimize the occurrence of any errors and do not necessarily minimize the average ‘size’ of the errors.
Therefore, it would be desirable to use codes that minimize the size of the errors. In addition or alternatively, a better code with a higher minimum distance and weight would improve the detection probability of type-B information.